#!/bin/bash

# 生成单个文件的 SHA1
generate_single_sha1() {
    local file="$1"
    sha1sum "$file" | awk '{print $1}'
}

# 生成所有文件的 .sha1 文件
generate_sha1_files() {
    find . -type f \
        -not -path '*/.*' \
        -not -name "*.sha1" \
        | while read -r file; do
        sha1=$(generate_single_sha1 "$file")
        sha1_file="${file}.sha1"
        echo "$sha1" > "$sha1_file"
        echo "Generated: $sha1_file"
    done
    echo "All SHA1 files have been generated."
}

# 生成 packages.sha1 文件
generate_packages_sha1() {
    local output_file="packages.sha1"
    # 清空或创建 packages.sha1 文件
    > "$output_file"
    
    # 查找所有包含 easytier 的文件，排除 .sha1 文件
    find . -type f \
        -path "*easytier*" \
        -not -name "*.sha1" \
        | sort \
        | while read -r file; do
        # 去掉路径开头的 ./
        clean_path=$(echo "$file" | sed 's|^\./||')
        # 计算 SHA1
        sha1=$(generate_single_sha1 "$file")
        # 按照指定格式写入文件
        echo -e "$sha1  $clean_path" >> "$output_file"
    done
    
    echo "Generated packages.sha1 file"
}

# 执行两个主要功能
generate_sha1_files
generate_packages_sha1